package com.example.kotlin_library

import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import coil3.ImageLoader
import coil3.compose.AsyncImage
import coil3.network.okhttp.OkHttpNetworkFetcherFactory

/**
 * Android 平台使用 Coil 加载 HEIF 图片的示例
 *
 * Coil 的 AsyncImage 会自动处理：
 * 1. 创建 ImageRequest
 * 2. 通过 ImageLoader 执行加载（缓存、网络、解码）
 * 3. 自动支持 HEIF/GIF/WebP 等格式（Android 8.0+）
 * 4. 状态管理和重组
 */

@Composable
fun CoilSample() {
    val context = LocalContext.current
    val imageLoader = remember {
        ImageLoader.Builder(context)
            .components {
                add(OkHttpNetworkFetcherFactory())
            }
            .build()
    }
    // 从 assets 加载 HEIF 文件
//    val assetPath = "file:///android_asset/test.heif"
    val assetPath = "https://i-blog.csdnimg.cn/direct/0053b18545c84151a8ba37243803cdff.webp"

    AsyncImage(
//        model = assetPath,  // 使用 assets 中的文件
        imageLoader = imageLoader,
        model = assetPath,
        contentDescription = "本地 HEIF 图片",
        modifier = Modifier.fillMaxSize(),
        onLoading = {
            android.util.Log.d("CoilSample", "图片加载中... 路径: $assetPath")
        },
        onError = { error ->
            android.util.Log.e("CoilSample", "图片加载失败 - 路径: $assetPath", error.result.throwable)
            error.result.throwable.printStackTrace()
        },
        onSuccess = {
            android.util.Log.d("CoilSample", "图片加载成功!")
        }
    )
}
